package com.zzg.mybatis.generator.model;

import lombok.AccessLevel;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

/**
 * 表对象
 */
@Data
public class TableFxModel {
    /**
     * 序列号
     */
    private int serialNumber;
    /**
     * 表名称
     */
    private String tableName;
    /**
     * 域名称
     */
    private String domainName;
    /**
     * 接口名称
     */
    private String interfaceName;
    /**
     * 备注
     */
    private String remark;

    /**
     * 是否选中
     */
    private Boolean checked;

    /**
     * 是否是根节点
     */
    private Boolean isRoot;

    /**
     * 是否是根节点
     *
     * @param isRoot 是否是根
     */
    public TableFxModel(Boolean isRoot, DatabaseConfig databaseConfig) {
        this.isRoot = isRoot;
        this.databaseConfig = databaseConfig;
    }

    /**
     * 只允许通过构造函数，初次初始化时赋值，禁止外部访问set方法
     */
    @Getter
    @Setter(AccessLevel.PRIVATE)
    private DatabaseConfig databaseConfig;

    /**
     * 构造函数
     *
     * @param tableName     表名称
     * @param domainName    实体名称
     * @param interfaceName 接口名称
     * @param remark        备注
     * @param isRoot        是否是根
     */
    public TableFxModel(String tableName, String domainName, String interfaceName, String remark, Boolean isRoot) {
        this.tableName = tableName;
        this.domainName = domainName;
        this.interfaceName = interfaceName;
        this.remark = remark;
        this.isRoot = isRoot;
    }
}
